package com.kakame.codenews.base.web.fast.mapping.nexus;

import java.io.Serializable;
import java.util.Date;

import com.kakame.codenews.base.web.annotation.TableMapping;
import com.kakame.codenews.base.web.annotation.ColumnMapping;

/**
 * 用来存放用户和消息的关系
 * @author 何家明  2018年08月09日 15:20:12
 */
@TableMapping("t_nexus_user_message")
public class UserMessage implements Serializable {

    private static final long serialVersionUID = 1L;

    @ColumnMapping(column = "id")
    private String id;

    @ColumnMapping(column = "from_id")
    private String fromId;

    @ColumnMapping(column = "to_id")
    private String toId;

    @ColumnMapping(column = "message_id")
    private String messageId;

    @ColumnMapping(column = "message_source")
    private String messageSource;

    @ColumnMapping(column = "message_status")
    private String messageStatus;

    @ColumnMapping(column = "status")
    private String status;

    @ColumnMapping(column = "create_time")
    private Date createTime;

    @ColumnMapping(column = "create_user_id")
    private String createUserId;

    @ColumnMapping(column = "update_time")
    private Date updateTime;

    @ColumnMapping(column = "update_user_id")
    private String updateUserId;


    public UserMessage() {
    }
    public UserMessage(Builder builder) {
        this.id = builder.id;
        this.fromId = builder.fromId;
        this.toId = builder.toId;
        this.messageId = builder.messageId;
        this.messageSource = builder.messageSource;
        this.messageStatus = builder.messageStatus;
        this.status = builder.status;
        this.createTime = builder.createTime;
        this.createUserId = builder.createUserId;
        this.updateTime = builder.updateTime;
        this.updateUserId = builder.updateUserId;
    }
	public static Builder create() {
		return new Builder();
	}

	/**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public String getId() {
		return id;
	}
    /**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param id
	 */
    public void setId(String id) {
		this.id = id;
	}
	/**
	 * 发送人的id
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public String getFromId() {
		return fromId;
	}
    /**
	 * 发送人的id
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param fromId
	 */
    public void setFromId(String fromId) {
		this.fromId = fromId;
	}
	/**
	 * 接收人的id
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public String getToId() {
		return toId;
	}
    /**
	 * 接收人的id
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param toId
	 */
    public void setToId(String toId) {
		this.toId = toId;
	}
	/**
	 * 消息的id
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public String getMessageId() {
		return messageId;
	}
    /**
	 * 消息的id
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param messageId
	 */
    public void setMessageId(String messageId) {
		this.messageId = messageId;
	}
	/**
	 * 消息的来源：article_comment 文章评论
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public String getMessageSource() {
		return messageSource;
	}
    /**
	 * 消息的来源：article_comment 文章评论
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param messageSource
	 */
    public void setMessageSource(String messageSource) {
		this.messageSource = messageSource;
	}
	/**
	 * 消息状态 0 未读 1 已读
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public String getMessageStatus() {
		return messageStatus;
	}
    /**
	 * 消息状态 0 未读 1 已读
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param messageStatus
	 */
    public void setMessageStatus(String messageStatus) {
		this.messageStatus = messageStatus;
	}
	/**
	 * 数据状态 C 正常 D 删除
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public String getStatus() {
		return status;
	}
    /**
	 * 数据状态 C 正常 D 删除
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param status
	 */
    public void setStatus(String status) {
		this.status = status;
	}
	/**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public Date getCreateTime() {
		return createTime;
	}
    /**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param createTime
	 */
    public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	/**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public String getCreateUserId() {
		return createUserId;
	}
    /**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param createUserId
	 */
    public void setCreateUserId(String createUserId) {
		this.createUserId = createUserId;
	}
	/**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public Date getUpdateTime() {
		return updateTime;
	}
    /**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param updateTime
	 */
    public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}
	/**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @return
	 */
    public String getUpdateUserId() {
		return updateUserId;
	}
    /**
	 * 
	 * @author 何家明  2018年08月09日 15:20:12
	 * @param updateUserId
	 */
    public void setUpdateUserId(String updateUserId) {
		this.updateUserId = updateUserId;
	}

    @Override
	public String toString() {
		return "UserMessage [id=" + id + ", fromId=" + fromId + ", toId=" + toId + ", messageId=" + messageId + ", messageSource=" + messageSource + ", messageStatus=" + messageStatus + ", status=" + status + ", createTime=" + createTime + ", createUserId=" + createUserId + ", updateTime=" + updateTime + ", updateUserId=" + updateUserId + "]";
	}
    public static class Builder {
        private String id;
        private String fromId;
        private String toId;
        private String messageId;
        private String messageSource;
        private String messageStatus;
        private String status;
        private Date createTime;
        private String createUserId;
        private Date updateTime;
        private String updateUserId;
        /**
	     * 
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param id
	     */
        public Builder id(String id) {
	    	this.id = id;
	        return this;
    	}
        /**
	     * 发送人的id
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param fromId
	     */
        public Builder fromId(String fromId) {
	    	this.fromId = fromId;
	        return this;
    	}
        /**
	     * 接收人的id
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param toId
	     */
        public Builder toId(String toId) {
	    	this.toId = toId;
	        return this;
    	}
        /**
	     * 消息的id
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param messageId
	     */
        public Builder messageId(String messageId) {
	    	this.messageId = messageId;
	        return this;
    	}
        /**
	     * 消息的来源：article_comment 文章评论
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param messageSource
	     */
        public Builder messageSource(String messageSource) {
	    	this.messageSource = messageSource;
	        return this;
    	}
        /**
	     * 消息状态 0 未读 1 已读
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param messageStatus
	     */
        public Builder messageStatus(String messageStatus) {
	    	this.messageStatus = messageStatus;
	        return this;
    	}
        /**
	     * 数据状态 C 正常 D 删除
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param status
	     */
        public Builder status(String status) {
	    	this.status = status;
	        return this;
    	}
        /**
	     * 
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param createTime
	     */
        public Builder createTime(Date createTime) {
	    	this.createTime = createTime;
	        return this;
    	}
        /**
	     * 
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param createUserId
	     */
        public Builder createUserId(String createUserId) {
	    	this.createUserId = createUserId;
	        return this;
    	}
        /**
	     * 
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param updateTime
	     */
        public Builder updateTime(Date updateTime) {
	    	this.updateTime = updateTime;
	        return this;
    	}
        /**
	     * 
	     * @author 何家明  2018年08月09日 15:20:12
	     * @param updateUserId
	     */
        public Builder updateUserId(String updateUserId) {
	    	this.updateUserId = updateUserId;
	        return this;
    	}

        public UserMessage build() {
			return new UserMessage(this);
		}
	}



    // ******************* 扩展 *******************//




}
